luci.mk: fix compatibility with GNU Make 4.2
authorJo-Philipp Wich <[email protected]>
Tue, 25 Oct 2022 09:30:13 +0000 (11:30 +0200)
committerJo-Philipp Wich <[email protected]>
Tue, 25 Oct 2022 10:20:22 +0000 (12:20 +0200)
GNU Make version 4.2 chokes on `#` characters embedded in variable
substitutions, leading to the following error:

    ../../luci.mk:114: *** unterminated call to function 'if': missing ')'.  Stop.

Avoid this problem by replacing variable substitutions with Git branch
format arguments.

Ref: https://github.com/openwrt/luci/pull/5976#issuecomment-1289935106
Signed-off-by: Jo-Philipp Wich <[email protected]>
luci.mk

diff --git a/luci.mk b/luci.mk
index f8d6e100bd768d429712e24c05ff68e3491679bd..9776813c4f0f9bff431fefdae4e1905f2a282262 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -114,9 +114,8 @@ PKG_SRC_VERSION?=$(if $(DUMP),x,$(strip $(call findrev,1)))
 PKG_GITBRANCH?=$(if $(DUMP),x,$(strip $(shell \
        variant="LuCI"; \
        if git log -1 >/dev/null 2>/dev/null; then \
-               branch=$$(git branch --remote --no-abbrev --contains 2>/dev/null | tail -n1); \
-               branch=$${branch:-$$(git branch --no-abbrev --contains 2>/dev/null)}; \
-               branch=$${branch#? }; branch=$${branch#*/}; \
+               branch=$$(git branch --format='%(refname:strip=3)' --remote --no-abbrev --contains 2>/dev/null | tail -n1); \
+               branch=$${branch:-$$(git branch --format='%(refname:strip=2)' --no-abbrev --contains 2>/dev/null | tail -n1)}; \
                if [ "$$branch" != "master" ]; then \
                        variant="LuCI $${branch:-unknown} branch"; \
                else \